Skip to content

refactor(dbt): lote domínios e outros (parte 2, views) do sac do SALIC migra para salic/silver_* - #137

Merged
LuizaMaluf merged 3 commits into
mainfrom
refactor/salic-lote-dominios-2
Oct 30, 2026
Merged

LuizaMaluf merged 3 commits into
mainfrom
refactor/salic-lote-dominios-2

Conversation

@LuizaMaluf

Copy link
Copy Markdown
Member

Descrição

Último lote do banco sac: domínios e outros, parte 2. São as 65 views que sobravam, que viram salic/silver_sac_<view>.sql, documentadas em salic/schema_sac_views.yml. Com este PR, o sac inteiro está em salic/silver_*.

Base. main, depois do #136.

Análise semântica. Foi feita em 30/10, com o banco aberto pela conexão de leitura.

  • O que são estas views: quase todas são recortes que o SALIC antigo calcula: captação, aprovação por modalidade, renúncia fiscal por ano, área e UF, cartas, convênios, regularidade e ranking de bandas. Nenhuma é fonte primária, e a descrição de cada uma aponta a tabela que é.
  • Três merecem atenção:
    • vnacional tem 953.865 endereços de 948.227 agentes: logradouro, número, bairro e CEP. É restrita.
    • vwmediana tem 2.681.696 medianas, mínimos, médias e máximos de preço unitário por item, município e unidade. É a base da comparação de preço na análise de custo.
    • vwinformacoes_tcu_etce reúne as informações pedidas pelo TCU para tomada de contas especial, com a conta específica do projeto.
  • Conferência na tabela inteira: toda afirmação de valor foi conferida com group by, e várias conclusões da amostra caíram:
    • vcartas cobre os anos de 1992 a 2020, não só um ano;
    • os itens impugnados são de 303 projetos, não de 2;
    • vtodaaprovacao tem 7 tipos de aprovação, não 4.

Casts.

  • PRONAC, sequencial, segmento e CEP passam a texto em 29 views.
  • O número do endereço de vnacional também passa a texto, porque 57 mil valores não são números.

Arquivos legados que saem.

  • salic_dbt/bronze/sources_sac.yml e salic_dbt/bronze/sac/schema.yml ficaram vazios e saem, porque o dbt recusa source sem tabela.
  • O bloco salic_dbt.bronze do dbt_project.yml sai também. Ele não se aplicava mais a nenhum modelo e gerava o aviso "Configuration paths exist ... which do not apply to any resources".
  • Fica só sources_sac_legado.yml, da ingestão v1.

Testes. Chaves únicas, conferidas por contagem distinta, em vnacional, vtermodecompromisso e vwmemoriadecalculo.

Governança.

  • Ficam restritas as views com CPF, CNPJ, endereço, nomes de pessoa, identidade, conta específica ou usuário interno.
  • Ficam internos os agregados e os recortes sem pessoa.
  • Algumas colunas casam por acaso com a busca de PII e ficam dispensadas no modelo:
    • liberacao, duracao, federacao, elaboracao e administracao;
    • contador (conta);
    • o tipo de endereco.

Issue relacionada

Sem issue própria, como os lotes anteriores. Refs #108, #136.

Tipo de mudança

  • Ingestão — cliente de API, DAG, carga
  • Modelo dbt — transformação, camada, teste
  • Correção de bug ou de inconsistência de dados
  • Infra / CI
  • Documentação — acervo do site recoletado, MEMORY.md

Impacto em dados

  • Schemas e tabelas afetados: entram 65 views silver_sac_* no schema salic. As views antigas sac__* continuam no banco até o PR de limpeza final.
  • Camada: silver.
  • Precisa reexecutar alguma coisa depois do merge? A próxima execução da DAG do Cosmos cria as 65 views.
  • Muda número que já está em uso? Não. Nenhum modelo fora do lote lê essas views.

Como testar

cd dbt/minc && dbt parse   # sem o aviso de caminho de configuração sem modelo
DBT_DEV_SCHEMA=dev_salic dbt build --target dev --select "salic.silver_sac_*" --indirect-selection cautious
python3 .claude/skills/arquitetura-lakehouse-minc/scripts/verificar.py dbt/minc/models/salic
make test

Evidências

Medido no dbanalytics em 30/10. As silvers foram construídas com dbt run --target dev em dev_salic, que foi apagado em seguida.

  • dbt run: as 65 views foram criadas sem erro.
  • Contagem: as 65 silvers têm a mesma contagem da origem. As maiores:
view origem = silver
vwmediana 2.681.696
vnacional 953.865
vcartas 824.175
vdadoscomplementaresdecartas 824.175
vwlistarcaptacoes 668.765
vrenunciaporano 510.217
vtodaaprovacao 472.615
vfninccaprenuncia 376.152
vfnaprocapproj 276.887
vwmemoriadecalculo 276.887
  • dbt test: os 6 testes passaram.
  • Credencial: nenhuma coluna com nome de credencial.
  • verificar.py:
    • Não há violação em salic/.
    • No projeto inteiro, as violações caem de 78 para 13. As que sobram são dos modelos manuais (core, meta3, meta4 e meta5), que vão para o próximo PR, e de fora do SALIC.
  • pytest: 8.140 passaram e 54 foram pulados.
  • Linters:
    • O sqlfmt passa nos SQL do lote.
    • O sqlfluff não rodou localmente, porque o templater dbt precisa de conexão com o banco.
  • Site: a coleta foi refeita e commitada.

Checklist

  • Título segue Conventional Commits
  • Issue relacionada referenciada acima
  • Rodei make lint localmente — ou justifiquei abaixo por que não
  • Rodei make test localmente — ou justifiquei abaixo por que não
  • Testes dbt adicionados ou atualizados, se aplicável
  • Descrição das colunas atualizada no schema.yml, se criei ou alterei modelo
  • Nenhuma credencial, CPF, CNPJ ou dado pessoal no código, no log ou no print

O make lint falha na main no black --check, em arquivos Python que este PR não toca.

🤖 Generated with Claude Code

LuizaMaluf and others added 3 commits October 29, 2026 23:57
…ara salic/silver_* (passo mecânico)

Último lote do sac: as 65 views que sobravam. Com ele, o sources_sac.yml e
o sac/schema.yml legados ficam vazios e saem; fica só a declaração da
ingestão v1 em sources_sac_legado.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…arte 2, views) do sac

Descreve as 65 views que fecham o banco sac: recortes de captação,
aprovação, renúncia fiscal, cartas, convênios, regularidade, a base de
endereços nacionais de agentes (vnacional), a mediana de preços da análise
de custo (vwmediana) e as informações ao TCU. PRONAC, sequencial,
segmento, CEP e número de endereço passam a texto.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tira do dbt_project.yml o bloco salic_dbt.bronze, que deixou de se aplicar
a qualquer modelo com a migração do último lote.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@bottinolucas bottinolucas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@LuizaMaluf
LuizaMaluf merged commit 77d8cd0 into main Oct 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants